<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>案例-图书管理</title>
  <link rel="stylesheet" href="https://at.alicdn.com/t/c/font_3736758_vxpb728fcyh.css">
  <link href="./css/bootstrap.min.css" rel="stylesheet">
  <link rel="stylesheet" href="./css/index.css">
</head>

<body>
  <div class="container">
     <div class="top">
      <h3>图书管理</h3>
      <button type="button" class="btn btn-primary plus-btn" data-bs-toggle="modal" data-bs-target=".add-modal">
        +添加
     </button>
     </div>
    
    <table class="table">
      <thead class="table-light">
        <tr>
          <th style="width: 150px;">序号</th>
          <th >书名</th>
          <th >作者</th>
          <th >出版社</th>
          <th style="width: 180px;">操作</th>
        </tr>
      </thead>
      <tbody class="list">

        <!-- <tr>
          <td>1</td>
          <td>JavaScript程序设计</td>
          <td>马特·弗里斯比</td>
          <td>人民邮电出版社</td>
          <td>
            <span class="del">删除</span>
            <span class="edit">编辑</span>
          </td>
        </tr> -->

      </tbody>
    </table>
    
  </div>
  <div class="modal fade add-modal">
    <div class="modal-dialog">
      <div class="modal-content">
        <div class="modal-header top">
          <span>添加图书</span>
          <button type="button" class="btn-close" aria-label="Close" data-bs-dismiss="modal"></button>
        </div>
        <div class="modal-body form-wrap">
          <form class="add-form">
            <div class="mb-3">
              <label for="bookname" class="form-label">书名</label>
              <input type="text" class="form-control bookname" placeholder="请输入书籍名称" name="bookname">
            </div>
            <div class="mb-3">
              <label for="author" class="form-label">作者</label>
              <input type="text" class="form-control author" placeholder="请输入作者名称" name="author">
            </div>
            <div class="mb-3">
              <label for="publisher" class="form-label">出版社</label>
              <input type="text" class="form-control publisher" placeholder="请输入出版社名称" name="publisher">
            </div>
          </form>
        </div>
        <div class="modal-footer btn-group">
          <button type="button" class="btn btn-primary" data-bs-dismiss="modal"> 取消 </button>
          <button type="button" class="btn btn-primary add-btn"> 保存 </button>
        </div>
      </div>
    </div>
  </div>
  <div class="modal fade edit-modal">
    <div class="modal-dialog">
      <div class="modal-content">
        <div class="modal-header top">
          <span>编辑图书</span>
          <button type="button" class="btn-close" aria-label="Close" data-bs-dismiss="modal"></button>
        </div>
        <div class="modal-body form-wrap">
          <form class="edit-form">
            <input type="hidden" class="id" name="id">
            <div class="mb-3">
              <label for="bookname" class="form-label">书名</label>
              <input type="text" class="form-control bookname" placeholder="请输入书籍名称" name="bookname">
            </div>
            <div class="mb-3">
              <label for="author" class="form-label">作者</label>
              <input type="text" class="form-control author" placeholder="请输入作者名称" name="author">
            </div>
            <div class="mb-3">
              <label for="publisher" class="form-label">出版社</label>
              <input type="text" class="form-control publisher" placeholder="请输入出版社名称" name="publisher">
            </div>
          </form>
        </div>
        <div class="modal-footer btn-group">
          <button type="button" class="btn btn-primary" data-bs-dismiss="modal"> 取消 </button>
          <button type="button" class="btn btn-primary edit-btn"> 修改 </button>
        </div>
      </div>
    </div>
  </div>
  <script src="https://cdn.bootcdn.net/ajax/libs/axios/1.2.0/axios.min.js"></script>
  <script src="./lib/form-serialize.js"></script>
  <script src="./lib/bootstrap.min.js"></script>
  <script>
    const creator = "king";
    function getBooksList() {
        axios({
          url:"https://hmajax.itheima.net/api/books",
          params:{
            creator:creator
          }
        }).then(res=>{
          const bookList = res.data.data;
          const htmlStr = bookList.map((item, index) => {
            return `<tr>
            <td>${index + 1}</td>
            <td>${item.bookname}</td>
            <td>${item.author}</td>
            <td>${item.publisher}</td>
            <td data-id=${item.id}>
              <span class="del">删除</span>
              <span class="edit">编辑</span>
            </td>
          </tr>`
          }).join('')
          document.querySelector(".list").innerHTML = htmlStr;
        })

    }
    getBooksList();
    const  addModalDom = document.querySelector(".add-modal")
    const addModal =  new bootstrap.Modal(addModalDom)
    document.querySelector(".add-btn").addEventListener("click",function () {
      const addForm = document.querySelector(".add-form")
      console.log(addForm);
      const bookObj = serialize(addForm,{hash:true,empty:true})
      console.log(bookObj);
      axios({
        url:"https://hmajax.itheima.net/api/books",
        method:"post",
        data:{
          ...bookObj,
          creator
        }
      }).then(res=>{
        console.log(res);
        getBooksList();
        addForm.reset()
        addModal.hide();
      })
    })
     document.querySelector(".list").addEventListener("click",function (event) {
        console.log(event.target);
        console.log(event.target.parentNode.dataset);
        if (event.target.classList.contains("del")) {
           const theId = event.target.parentNode.dataset.id;
           console.log(theId);
          axios({
            url:`https://hmajax.itheima.net/api/books/${theId}`,
            method:"DELETE"
          }).then(res=>{
            console.log(res);
            getBooksList();
          })  
        }
     })
       const  editModalDom = document.querySelector(".edit-modal")
       const editModal =  new bootstrap.Modal(editModalDom)
       document.querySelector(".list").addEventListener("click",function (event) {
        if (event.target.classList.contains("edit")) {
           const theId = event.target.parentNode.dataset.id;
           console.log(theId);
          axios({
            url:`https://hmajax.itheima.net/api/books/${theId}`,
          }).then(res=>{
            console.log(res);
            const bookObj = res.data.data;
            const keys = Object.keys(bookObj)
            console.log(keys);
            keys.forEach(key=>{
              document.querySelector(`.edit-form .${key}`).value = bookObj[key]
            })
          })  
          editModal.show()
        }
       })
        document.querySelector(".edit-btn").addEventListener("click",function (event) {
          const editForm = document.querySelector(".edit-form")
          console.log(editForm);
          const {id,bookname,author,publisher} = serialize(editForm,{hash:true,empty:true})
          axios({
            url:`https://hmajax.itheima.net/api/books/${id}`,
            method:"PUT",
            data:{
              bookname:bookname,
              author:author,
              publisher:publisher,
              creator:creator
            }
          }).then(res=>{
            console.log(res);
            getBooksList();
            editForm.reset()
            editModal.hide();
          })
        })


    
  </script>
</body>

</html>